<?php

class Dao {

	private static $instance = null;
	
	private function __construct() {}	// para que nadie pueda crear una instacia
	
	public static function getInstance() {
		global $infoBD;
		
		if (!self::$instance) {
		    self::$instance = new PDO("mysql:host=".$infoBD["servidor"].";dbname=".$infoBD["baseDatos"], $infoBD["usuario"], $infoBD["clave"]);
		    self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
		    self::ejecuta("SET NAMES UTF8");
		}
	
		return self::$instance;
	}
	
	private function __clone(){} // para que nadie clone la instancia

	public static function ejecuta($sql, $params = null) {
		$cnn = self::getInstance();
		$obj = $cnn->prepare($sql);
		try {
			$obj->execute($params);			
		} catch (Exception $ex) {
			//Util::depura($ex);
			echo($ex->getMessage());
			$obj = null;
		}
		
		if (preg_match("/^DELETE/i", trim($sql)) == 1) {
			$obj = null;
		}

		if (preg_match("/^INSERT/i", trim($sql)) == 1) {
			$obj = null;
			
			return $cnn->lastInsertId();
		} else {
			return $obj;
		}
	}
}

?>
